파이썬입문 겨울방학 특강 (4)
- 무슨말인지 하나도 몰랐어요
- 요즘 학생들이 많이 쓰는 말인것은 알겠음
- 멈춰까지 유행어였음!! (몰랐어요, 댓글보고 알았음)
Step1: 멈춰의 원조: 학교폭력, 멈춰~
Step2: 갑자기 뒤늦게 재미있음 $\to$ 밈화
- ㅇㅇㅇ, 멈춰~~~!로 따라하기 시작함
- 코스피하락, 멈춰~
- 세균, 멈춰~
- 수강신청 매크로, 멈춰~
- 밈이란? 복제가능한 something
- 이기적 유전자에서 제시한 개념
- 유전자는 (1) 복제 (2) 변형되면서 전파되는 속성이 있다는 사실을 관찰
- 종교, 사상, 이념도 유전자처럼 (1) 복제 (2) 변형되면서 전파되더라..
- 밈 = 유전자의 일반화된 개념 = 복제가능한 something
- 예제1: 원본
print("학교폭력")
from PIL import Image
display(Image.open('2022-01-02-stop1.jpeg'))
print("멈춰~~~~~")
- 예제2: 코스피하락
print("코스피하락,")
display(Image.open('2022-01-02-stop1.jpeg'))
print("멈춰~~~~~")
- 예제3: 수강신청 매크로 멈춰
print("수강신청 매크로,")
display(Image.open('2022-01-02-stop1.jpeg'))
print("멈춰~~~~~")
- 정리해보자.
start = "학교폭력"
img = '2022-01-02-stop1.jpeg'
end = "멈춰~~~~~~~"
def memeshow(start, img, end):
print(start)
display(Image.open(img))
print(end)
- 예제1을 재생성
memeshow(start,img,end)
- 예제2를 재생성
start = "코스피 하락,"
memeshow(start,img,end)
- 예제3의 재생성
start = "수강신청 매크로,"
memeshow(start,img,end)
- 코드를 정리하다 보니까 살짝 비효율적인 느낌이 있음
- major: 여러개의 콘텐츠를 동시에 관리하기가 힘들다.
- minor: start, img, end와 같은 변수들이 정리가 되어있지 않고 산만한 느낌이 든다.
부장님: 예제1을 생성하라
start = "학교폭력, "
memeshow(start,img,end)
부장님: 예제2를 생성하라.
start = "코스피하락,"
memeshow(start,img,end)
부장님: 예제2에서 멈춰~ㅠㅠ 로 바꿔봐라. 좀 더 간절함이 느껴지도록..
end = "멈춰~~~ㅠㅠ"
memeshow(start,img,end)
부장님: OK 다시 예제1로 가봐
start = "학교폭력,"
memeshow(start,img,end)
부장님: 아니, 멈춰는 그대로 해야지. 여기서 우니까 애들이 더 괴롭힐것 같잖아
end = " 멈춰~~~~"
memeshow(start,img,end)
부장님: OK. 이제 이미지를 바꿔보자 신혜선 나오는것 어떰? 내가 신혜선 좋아함.
img = '2022-01-02-stop2.png'
memeshow(start,img,end)
부장님: 좋다. 이제 2개의 컨텐츠를 동시에 보여봐. 점검을 해보자.
(예제1)
start= "학교폭력,"
img = "2022-01-02-stop2.png"
end = "멈춰~~~~"
memeshow(start,img,end)
(예제2)
start= "코스피하락,"
img = "2022-01-02-stop1.jpeg"
end = "멈춰~~ㅜㅜ"
memeshow(start,img,end)
- 클래스가 없다면? 살짝 비효율적인 느낌이 있음
- major: 여러개의 콘텐츠를 동시에 관리하기가 힘들다. (예제1, 예제2 동시에 관리하니까 힘들었어요)
- minor: start, img, end와 같은 변수들이 정리가 되어있지 않고 산만한 느낌이 든다.
- HWP를 켜서 부장님의 지시를 수행했다면?
- 부장님의 공통 지시사항을 추린다. (start, img, end와 같은 요소가 필요하고 그림을 삽입하는 기술도 필요하겠음)
- 소스가 되는 hwp파일을 하나 만든다. 복사를 위한 틀이다. 파일이름은 KBS.HWP라고 하자.
- KBS.HWP파일을 복사 $\to$ stop1.hwp, stop2.hwp 파일을 만든다. 그리고 부장님이 지시사항이 있을때마다 stop1.hwp, stop2.hwp의 내용을 각각 수정한다.
- 단점이 극복될까요?
- major: 여러개의 콘텐츠를 동시에 관리하기가 힘들다. $\to$ 샘플파일과 각각의 복사본을 나누어서 독립적으로 관리하므로 이 문제는 해결
- minor: start, img, end와 같은 변수들이 정리가 되어있지 않고 산만한 느낌이 든다. $\to$ stop1.hwp, stop2.hwp와 같은파일안에 내용이 있으므로 산만하지 않음.
- 방금 말한 HWP와 같은 방식을 코딩에 적용해보자.
class KBSHWP:
start = '학교폭력,'
img = '2022-01-02-stop1.jpeg'
end = '멈춰~~~~'
def memeshow(self): ## 규칙1: class안에 정의된 함수의 첫번째 인자는 무조건 self
print(self.start) ## 규칙2: class안에 정의된 변수를 쓰려면 self.변수이름 과 같은 형식으로 써야함
display(Image.open(self.img)) # 규칙2 적용
print(self.end) # 규칙2 적용
부장님: 예제1을 생성하라
부장님: 예제2를 생성하라.
부장님: 예제2에서 멈춰~ㅠㅠ 로 바꿔봐라. 좀 더 간절함이 느껴지도록..
부장님: OK 다시 예제1로 가봐
부장님: 아니, 멈춰는 그대로 해야지. 여기서 우니까 애들이 더 괴롭힐것 같잖아
부장님: OK. 이제 이미지를 바꿔보자 신혜선 나오는것 어떰? 내가 신혜선 좋아함.
부장님: 좋다. 이제 2개의 컨텐츠를 동시에 보여봐. 점검을 해보자.